
// MIT License
// 
// Copyright (c) 2009-2017 Luca Piccioni
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// 
// This file is automatically generated

#pragma warning disable 649, 1572, 1573

// ReSharper disable RedundantUsingDirective
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;

using Khronos;

// ReSharper disable CheckNamespace
// ReSharper disable InconsistentNaming
// ReSharper disable JoinDeclarationAndInitializer

namespace OpenGL
{
	public partial class Gl
	{
		/// <summary>
		/// [GL] Value of GL_VERTEX_PROGRAM_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int VERTEX_PROGRAM_ARB = 0x8620;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_LENGTH_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int PROGRAM_LENGTH_ARB = 0x8627;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_STRING_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int PROGRAM_STRING_ARB = 0x8628;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_MATRICES_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_MATRICES_ARB = 0x862F;

		/// <summary>
		/// [GL] Value of GL_CURRENT_MATRIX_STACK_DEPTH_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640;

		/// <summary>
		/// [GL] Value of GL_CURRENT_MATRIX_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int CURRENT_MATRIX_ARB = 0x8641;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_ERROR_POSITION_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public const int PROGRAM_ERROR_POSITION_ARB = 0x864B;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_BINDING_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_BINDING_ARB = 0x8677;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_ERROR_STRING_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_fragment_program")]
		public const int PROGRAM_ERROR_STRING_ARB = 0x8874;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_FORMAT_ASCII_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_FORMAT_ASCII_ARB = 0x8875;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_FORMAT_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_FORMAT_ARB = 0x8876;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_INSTRUCTIONS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_INSTRUCTIONS_ARB = 0x88A0;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_INSTRUCTIONS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_TEMPORARIES_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_TEMPORARIES_ARB = 0x88A4;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_TEMPORARIES_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_NATIVE_TEMPORARIES_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_PARAMETERS_ARB = 0x88A8;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_PARAMETERS_ARB = 0x88A9;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_NATIVE_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_ATTRIBS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_ATTRIBS_ARB = 0x88AC;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_ATTRIBS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_ATTRIBS_ARB = 0x88AD;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_NATIVE_ATTRIBS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_ADDRESS_REGISTERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4;

		/// <summary>
		/// [GL] Value of GL_MAX_PROGRAM_ENV_PARAMETERS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6;

		/// <summary>
		/// [GL] Value of GL_TRANSPOSE_CURRENT_MATRIX_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7;

		/// <summary>
		/// [GL] Value of GL_MATRIX0_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX0_ARB = 0x88C0;

		/// <summary>
		/// [GL] Value of GL_MATRIX1_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX1_ARB = 0x88C1;

		/// <summary>
		/// [GL] Value of GL_MATRIX2_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX2_ARB = 0x88C2;

		/// <summary>
		/// [GL] Value of GL_MATRIX3_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX3_ARB = 0x88C3;

		/// <summary>
		/// [GL] Value of GL_MATRIX4_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX4_ARB = 0x88C4;

		/// <summary>
		/// [GL] Value of GL_MATRIX5_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX5_ARB = 0x88C5;

		/// <summary>
		/// [GL] Value of GL_MATRIX6_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX6_ARB = 0x88C6;

		/// <summary>
		/// [GL] Value of GL_MATRIX7_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX7_ARB = 0x88C7;

		/// <summary>
		/// [GL] Value of GL_MATRIX8_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX8_ARB = 0x88C8;

		/// <summary>
		/// [GL] Value of GL_MATRIX9_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX9_ARB = 0x88C9;

		/// <summary>
		/// [GL] Value of GL_MATRIX10_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX10_ARB = 0x88CA;

		/// <summary>
		/// [GL] Value of GL_MATRIX11_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX11_ARB = 0x88CB;

		/// <summary>
		/// [GL] Value of GL_MATRIX12_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX12_ARB = 0x88CC;

		/// <summary>
		/// [GL] Value of GL_MATRIX13_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX13_ARB = 0x88CD;

		/// <summary>
		/// [GL] Value of GL_MATRIX14_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX14_ARB = 0x88CE;

		/// <summary>
		/// [GL] Value of GL_MATRIX15_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX15_ARB = 0x88CF;

		/// <summary>
		/// [GL] Value of GL_MATRIX16_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX16_ARB = 0x88D0;

		/// <summary>
		/// [GL] Value of GL_MATRIX17_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX17_ARB = 0x88D1;

		/// <summary>
		/// [GL] Value of GL_MATRIX18_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX18_ARB = 0x88D2;

		/// <summary>
		/// [GL] Value of GL_MATRIX19_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX19_ARB = 0x88D3;

		/// <summary>
		/// [GL] Value of GL_MATRIX20_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX20_ARB = 0x88D4;

		/// <summary>
		/// [GL] Value of GL_MATRIX21_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX21_ARB = 0x88D5;

		/// <summary>
		/// [GL] Value of GL_MATRIX22_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX22_ARB = 0x88D6;

		/// <summary>
		/// [GL] Value of GL_MATRIX23_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX23_ARB = 0x88D7;

		/// <summary>
		/// [GL] Value of GL_MATRIX24_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX24_ARB = 0x88D8;

		/// <summary>
		/// [GL] Value of GL_MATRIX25_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX25_ARB = 0x88D9;

		/// <summary>
		/// [GL] Value of GL_MATRIX26_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX26_ARB = 0x88DA;

		/// <summary>
		/// [GL] Value of GL_MATRIX27_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX27_ARB = 0x88DB;

		/// <summary>
		/// [GL] Value of GL_MATRIX28_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX28_ARB = 0x88DC;

		/// <summary>
		/// [GL] Value of GL_MATRIX29_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX29_ARB = 0x88DD;

		/// <summary>
		/// [GL] Value of GL_MATRIX30_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX30_ARB = 0x88DE;

		/// <summary>
		/// [GL] Value of GL_MATRIX31_ARB symbol.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public const int MATRIX31_ARB = 0x88DF;

		/// <summary>
		/// [GL] glProgramStringARB: Binding for glProgramStringARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="len">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramStringARB(int target, int format, int len, IntPtr @string)
		{
			Debug.Assert(Delegates.pglProgramStringARB != null, "pglProgramStringARB not implemented");
			Delegates.pglProgramStringARB(target, format, len, @string);
			LogCommand("glProgramStringARB", null, target, format, len, @string			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramStringARB: Binding for glProgramStringARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="len">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramStringARB(int target, int format, int len, object @string)
		{
			GCHandle pin_string = GCHandle.Alloc(@string, GCHandleType.Pinned);
			try {
				ProgramStringARB(target, format, len, pin_string.AddrOfPinnedObject());
			} finally {
				pin_string.Free();
			}
		}

		/// <summary>
		/// [GL] glBindProgramARB: Binding for glBindProgramARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public static void BindProgramARB(int target, uint program)
		{
			Debug.Assert(Delegates.pglBindProgramARB != null, "pglBindProgramARB not implemented");
			Delegates.pglBindProgramARB(target, program);
			LogCommand("glBindProgramARB", null, target, program			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glDeleteProgramsARB: Binding for glDeleteProgramsARB.
		/// </summary>
		/// <param name="programs">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public static void DeleteProgramsARB(uint[] programs)
		{
			unsafe {
				fixed (uint* p_programs = programs)
				{
					Debug.Assert(Delegates.pglDeleteProgramsARB != null, "pglDeleteProgramsARB not implemented");
					Delegates.pglDeleteProgramsARB(programs.Length, p_programs);
					LogCommand("glDeleteProgramsARB", null, programs.Length, programs					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGenProgramsARB: Binding for glGenProgramsARB.
		/// </summary>
		/// <param name="programs">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public static void GenProgramsARB(uint[] programs)
		{
			unsafe {
				fixed (uint* p_programs = programs)
				{
					Debug.Assert(Delegates.pglGenProgramsARB != null, "pglGenProgramsARB not implemented");
					Delegates.pglGenProgramsARB(programs.Length, p_programs);
					LogCommand("glGenProgramsARB", null, programs.Length, programs					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGenProgramsARB: Binding for glGenProgramsARB.
		/// </summary>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public static uint GenProgramARB()
		{
			uint retValue;
			unsafe {
				Delegates.pglGenProgramsARB(1, &retValue);
				LogCommand("glGenProgramsARB", null, 1, "{ " + retValue + " }"				);
			}
			DebugCheckErrors(null);
			return (retValue);
		}

		/// <summary>
		/// [GL] glProgramEnvParameter4dARB: Binding for glProgramEnvParameter4dARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramEnvParameter4ARB(int target, uint index, double x, double y, double z, double w)
		{
			Debug.Assert(Delegates.pglProgramEnvParameter4dARB != null, "pglProgramEnvParameter4dARB not implemented");
			Delegates.pglProgramEnvParameter4dARB(target, index, x, y, z, w);
			LogCommand("glProgramEnvParameter4dARB", null, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramEnvParameter4dvARB: Binding for glProgramEnvParameter4dvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramEnvParameter4ARB(int target, uint index, double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglProgramEnvParameter4dvARB != null, "pglProgramEnvParameter4dvARB not implemented");
					Delegates.pglProgramEnvParameter4dvARB(target, index, p_params);
					LogCommand("glProgramEnvParameter4dvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramEnvParameter4fARB: Binding for glProgramEnvParameter4fARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramEnvParameter4ARB(int target, uint index, float x, float y, float z, float w)
		{
			Debug.Assert(Delegates.pglProgramEnvParameter4fARB != null, "pglProgramEnvParameter4fARB not implemented");
			Delegates.pglProgramEnvParameter4fARB(target, index, x, y, z, w);
			LogCommand("glProgramEnvParameter4fARB", null, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramEnvParameter4fvARB: Binding for glProgramEnvParameter4fvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramEnvParameter4ARB(int target, uint index, float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglProgramEnvParameter4fvARB != null, "pglProgramEnvParameter4fvARB not implemented");
					Delegates.pglProgramEnvParameter4fvARB(target, index, p_params);
					LogCommand("glProgramEnvParameter4fvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramLocalParameter4dARB: Binding for glProgramLocalParameter4dARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramLocalParameter4ARB(int target, uint index, double x, double y, double z, double w)
		{
			Debug.Assert(Delegates.pglProgramLocalParameter4dARB != null, "pglProgramLocalParameter4dARB not implemented");
			Delegates.pglProgramLocalParameter4dARB(target, index, x, y, z, w);
			LogCommand("glProgramLocalParameter4dARB", null, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramLocalParameter4dvARB: Binding for glProgramLocalParameter4dvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramLocalParameter4ARB(int target, uint index, double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglProgramLocalParameter4dvARB != null, "pglProgramLocalParameter4dvARB not implemented");
					Delegates.pglProgramLocalParameter4dvARB(target, index, p_params);
					LogCommand("glProgramLocalParameter4dvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramLocalParameter4fARB: Binding for glProgramLocalParameter4fARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramLocalParameter4ARB(int target, uint index, float x, float y, float z, float w)
		{
			Debug.Assert(Delegates.pglProgramLocalParameter4fARB != null, "pglProgramLocalParameter4fARB not implemented");
			Delegates.pglProgramLocalParameter4fARB(target, index, x, y, z, w);
			LogCommand("glProgramLocalParameter4fARB", null, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramLocalParameter4fvARB: Binding for glProgramLocalParameter4fvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void ProgramLocalParameter4ARB(int target, uint index, float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglProgramLocalParameter4fvARB != null, "pglProgramLocalParameter4fvARB not implemented");
					Delegates.pglProgramLocalParameter4fvARB(target, index, p_params);
					LogCommand("glProgramLocalParameter4fvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramEnvParameterdvARB: Binding for glGetProgramEnvParameterdvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramEnvParameterARB(int target, uint index, [Out] double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetProgramEnvParameterdvARB != null, "pglGetProgramEnvParameterdvARB not implemented");
					Delegates.pglGetProgramEnvParameterdvARB(target, index, p_params);
					LogCommand("glGetProgramEnvParameterdvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramEnvParameterfvARB: Binding for glGetProgramEnvParameterfvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramEnvParameterARB(int target, uint index, [Out] float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetProgramEnvParameterfvARB != null, "pglGetProgramEnvParameterfvARB not implemented");
					Delegates.pglGetProgramEnvParameterfvARB(target, index, p_params);
					LogCommand("glGetProgramEnvParameterfvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramLocalParameterdvARB: Binding for glGetProgramLocalParameterdvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramLocalParameterARB(int target, uint index, [Out] double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetProgramLocalParameterdvARB != null, "pglGetProgramLocalParameterdvARB not implemented");
					Delegates.pglGetProgramLocalParameterdvARB(target, index, p_params);
					LogCommand("glGetProgramLocalParameterdvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramLocalParameterfvARB: Binding for glGetProgramLocalParameterfvARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramLocalParameterARB(int target, uint index, [Out] float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetProgramLocalParameterfvARB != null, "pglGetProgramLocalParameterfvARB not implemented");
					Delegates.pglGetProgramLocalParameterfvARB(target, index, p_params);
					LogCommand("glGetProgramLocalParameterfvARB", null, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramivARB: Binding for glGetProgramivARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:ProgramProperty"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramARB(int target, ProgramProperty pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetProgramivARB != null, "pglGetProgramivARB not implemented");
					Delegates.pglGetProgramivARB(target, (int)pname, p_params);
					LogCommand("glGetProgramivARB", null, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramStringARB: Binding for glGetProgramStringARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramStringARB(int target, int pname, IntPtr @string)
		{
			Debug.Assert(Delegates.pglGetProgramStringARB != null, "pglGetProgramStringARB not implemented");
			Delegates.pglGetProgramStringARB(target, pname, @string);
			LogCommand("glGetProgramStringARB", null, target, pname, @string			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetProgramStringARB: Binding for glGetProgramStringARB.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		public static void GetProgramStringARB(int target, int pname, object @string)
		{
			GCHandle pin_string = GCHandle.Alloc(@string, GCHandleType.Pinned);
			try {
				GetProgramStringARB(target, pname, pin_string.AddrOfPinnedObject());
			} finally {
				pin_string.Free();
			}
		}

		/// <summary>
		/// [GL] glIsProgramARB: Binding for glIsProgramARB.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_ARB_fragment_program")]
		[RequiredByFeature("GL_ARB_vertex_program")]
		[RequiredByFeature("GL_NV_vertex_program")]
		public static bool IsProgramARB(uint program)
		{
			bool retValue;

			Debug.Assert(Delegates.pglIsProgramARB != null, "pglIsProgramARB not implemented");
			retValue = Delegates.pglIsProgramARB(program);
			LogCommand("glIsProgramARB", retValue, program			);
			DebugCheckErrors(retValue);

			return (retValue);
		}

		internal static unsafe partial class Delegates
		{
			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramStringARB(int target, int format, int len, IntPtr @string);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramStringARB pglProgramStringARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glBindProgramARB(int target, uint program);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program", EntryPoint = "glBindProgramNV")]
			[ThreadStatic]
			internal static glBindProgramARB pglBindProgramARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glDeleteProgramsARB(int n, uint* programs);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program", EntryPoint = "glDeleteProgramsNV")]
			[ThreadStatic]
			internal static glDeleteProgramsARB pglDeleteProgramsARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGenProgramsARB(int n, uint* programs);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program", EntryPoint = "glGenProgramsNV")]
			[ThreadStatic]
			internal static glGenProgramsARB pglGenProgramsARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramEnvParameter4dARB(int target, uint index, double x, double y, double z, double w);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramEnvParameter4dARB pglProgramEnvParameter4dARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramEnvParameter4dvARB(int target, uint index, double* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramEnvParameter4dvARB pglProgramEnvParameter4dvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramEnvParameter4fARB(int target, uint index, float x, float y, float z, float w);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramEnvParameter4fARB pglProgramEnvParameter4fARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramEnvParameter4fvARB(int target, uint index, float* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramEnvParameter4fvARB pglProgramEnvParameter4fvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramLocalParameter4dARB(int target, uint index, double x, double y, double z, double w);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramLocalParameter4dARB pglProgramLocalParameter4dARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramLocalParameter4dvARB(int target, uint index, double* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramLocalParameter4dvARB pglProgramLocalParameter4dvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramLocalParameter4fARB(int target, uint index, float x, float y, float z, float w);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramLocalParameter4fARB pglProgramLocalParameter4fARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramLocalParameter4fvARB(int target, uint index, float* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glProgramLocalParameter4fvARB pglProgramLocalParameter4fvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramEnvParameterdvARB(int target, uint index, double* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramEnvParameterdvARB pglGetProgramEnvParameterdvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramEnvParameterfvARB(int target, uint index, float* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramEnvParameterfvARB pglGetProgramEnvParameterfvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramLocalParameterdvARB(int target, uint index, double* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramLocalParameterdvARB pglGetProgramLocalParameterdvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramLocalParameterfvARB(int target, uint index, float* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramLocalParameterfvARB pglGetProgramLocalParameterfvARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramivARB(int target, int pname, int* @params);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramivARB pglGetProgramivARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetProgramStringARB(int target, int pname, IntPtr @string);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[ThreadStatic]
			internal static glGetProgramStringARB pglGetProgramStringARB;

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program")]
			[SuppressUnmanagedCodeSecurity]
			[return: MarshalAs(UnmanagedType.I1)]
			internal delegate bool glIsProgramARB(uint program);

			[RequiredByFeature("GL_ARB_fragment_program")]
			[RequiredByFeature("GL_ARB_vertex_program")]
			[RequiredByFeature("GL_NV_vertex_program", EntryPoint = "glIsProgramNV")]
			[ThreadStatic]
			internal static glIsProgramARB pglIsProgramARB;

		}
	}

}
